#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL.Times;
namespace Cephei.QL.Termstructures.Volatility.Equityfx
{
     // <summary> 
	// ! The given date will be the implied reference date. \note This term structure will remain linked to the original structure, i.e., any changes in the latter will be reflected in this structure as well.  \warning It doesn't make financial sense to have an asset-dependant implied Vol Term Structure.  This class should be used with term structures that are time dependant only.
	// </summary>
    [Guid ("DE3F0531-E494-4d09-9E10-827CBA40277A"),ComVisible(true)]
	public interface IImpliedVolTermStructure : Cephei.QL.Termstructures.Volatility.Equityfx.IBlackVarianceTermStructure
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        
		 Cephei.QL.Times.IDayCounter DayCounter {get;}
        
		 DateTime MaxDate {get;}
        
		 Double MaxStrike {get;}
        
		 Double MinStrike {get;}
    }

    // <summary> 
	// ! The given date will be the implied reference date. \note This term structure will remain linked to the original structure, i.e., any changes in the latter will be reflected in this structure as well.  \warning It doesn't make financial sense to have an asset-dependant implied Vol Term Structure.  This class should be used with term structures that are time dependant only. Factory
	// </summary>
   	[ComVisible(true)]
    public interface IImpliedVolTermStructure_Factory // : Collection_Factory<IImpliedVolTermStructure, ICell<IImpliedVolTermStructure>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    IImpliedVolTermStructure Create (Cephei.QL.Termstructures.Volatility.Equityfx.IBlackVolTermStructure origTS, DateTime referenceDate);
    }
}

